package com.beyondsoft.sabg.edu.model.dto;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.HashMap;

@Data
@EqualsAndHashCode(callSuper = true)
public class DocumentOperationRequestDto  extends BasicDTO{
    /**
     * 操作类型：
     * - "generate" (生成公文) - 
     * - "polish" (润色文本) - 
     * - "continueWriting" (续写文本) - 
     * - "review" (审查公文) - 
     * - "export" (导出公文)
     */
    private String action;

    /**
     * 目标公文类型，例如 "报告", "通知", "函" 等。
     * 主要用于 "generate" 动作。
     */
    private String documentType;

    /**
     * 当前公文的完整内容（可能是HTML或纯文本）。
     * 主要用于 "polish", "continueWriting", "review", "export" 动作。
     */
    private String fullDocumentContent;

    /**
     * 用户在编辑器中选中的文本。
     * 主要用于 "polish", "continueWriting" 动作。
     */
    private String selectedText;

    /**
     * 光标在 fullDocumentContent 中的位置（偏移量）。
     * 主要用于 "continueWriting" 动作，指示续写点。
     */
    private Integer cursorPosition;

    /**
     * 包含所有公文具体表单字段的 DTO。
     * 主要用于 "generate" 动作，前端将用户在表单中输入的数据填充到此对象中。
     * 只有当 action 为 "generate" 时，此字段才需要被填充。
     */
    private DocumentFormFieldsDto documentFields;

    /**
     * 其他任意的额外参数，用于未来扩展或特定场景。
     * 例如，生成时可能需要指定字数范围，审查时可能需要指定审查严格度等。
     */
    private HashMap<String, Object> extraParams;
}
